/**
 * Rodimiro Andrés Castañeda Calderón (12122)
 * Mario Roberto Gómez Flores (12165)
 * Sección 10
 * 22/07/2013
 * DriverP.java
 * Driver que llama a Postfix para realizar una operacion. Busca la operacion en el archivo datos.txt
 */

import java.io.*;
public class DriverP {

    public static void main(String [] args){
        System.out.println("*****Bienvenido a calculadora Postfix*****");
        
        try{
            //Crear objetos para leer del archivo datos.txt
            FileReader fr = new FileReader("datos.txt");
            BufferedReader lector = new BufferedReader (fr);

            //Declaracion de variables.
            /* NOTA:
             * Se hace aqui para optimizar tiempo. Si FileReader o BufferedReader
             * lanzan alguna excepcion, no hace esta parte.
             */
            int resultado;
            Postfix calculadora;
            String linea;

            //Mientras el lector este listo para leer la siguiente linea
            while(lector.ready()){
                //La lee y almacena
               linea = lector.readLine();

               //Instancia una nueva calculadora Postfix, le manda la linea recien leida y la muestra
               calculadora = new Postfix(linea);
               System.out.println(linea);

               //Cuando obtiene el resultado, lo muestra tambien
               resultado = calculadora.realizarOperacion();
               System.out.println("Resultado: " + resultado);
            }

            //Cierra el archivo
            lector.close();
        }
        //Si hubo alguna de las excepciones declaradas en las clases durante la ejecucion de realizarOperacion
        catch (IncompleteOperationException | UnsupportedOperationException | PilaVaciaException ex){
            //Muestra el mensaje de error
            System.out.println(ex.getMessage());
        }
        //Excepciones que hay que declarar por usar FileReader y BufferedReader
        catch(FileNotFoundException F){
            System.out.println("Este archivo no se ha encontrado");
        }
        catch(IOException i){
            System.out.println("Error IO");
        }
    }
   
        
}
